<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=iso-8859-1" />
    <title>
      6.14.&nbsp;GMP-6.1.2
    </title>
    <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>
  <body class="lfs" id="lfs-8.0-systemd">
    <div class="navheader">
      <h4>
        Linux From Scratch - Version 8.0-systemd
      </h4>
      <h3>
        Chapter&nbsp;6.&nbsp;Installing Basic System Software
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="binutils.html" title=
          "Binutils-2.27">Prev</a>
          <p>
            Binutils-2.27
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="mpfr.html" title="MPFR-3.1.5">Next</a>
          <p>
            MPFR-3.1.5
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter06.html" title=
          "Chapter&nbsp;6.&nbsp;Installing Basic System Software">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 8.0-systemd">Home</a>
        </li>
      </ul>
    </div>
    <div class="wrap" lang="en" xml:lang="en">
      <h1 class="sect1">
        <a id="ch-system-gmp" name="ch-system-gmp"></a>6.14. GMP-6.1.2
      </h1>
      <div class="package" lang="en" xml:lang="en">
        <p>
          The GMP package contains math libraries. These have useful
          functions for arbitrary precision arithmetic.
        </p>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">Approximate build time:</strong>
              <span class="segbody">1.3 SBU</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Required disk space:</strong>
              <span class="segbody">59 MB</span>
            </div>
          </div>
        </div>
      </div>
      <div class="installation" lang="en" xml:lang="en">
        <h2 class="sect2">
          6.14.1. Installation of GMP
        </h2>
        <div class="admon note">
          <img alt="[Note]" src="../images/note.png" />
          <h3>
            Note
          </h3>
          <p>
            If you are building for 32-bit x86, but you have a CPU which is
            capable of running 64-bit code <span class=
            "emphasis"><em>and</em></span> you have specified <code class=
            "envar">CFLAGS</code> in the environment, the configure script
            will attempt to configure for 64-bits and fail. Avoid this by
            invoking the configure command below with
          </p>
          <pre class="userinput">
<kbd class="command"><em class=
"parameter"><code>ABI=32</code></em> ./configure ...</kbd>
</pre>
        </div>
        <p>
          Prepare GMP for compilation:
        </p>
        <pre class="userinput">
<kbd class="command">./configure --prefix=/usr    \
            --enable-cxx     \
            --disable-static \
            --docdir=/usr/share/doc/gmp-6.1.2</kbd>
</pre>
        <div class="variablelist">
          <p class="title">
            <strong>The meaning of the new configure options:</strong>
          </p>
          <dl class="variablelist">
            <dt>
              <span class="term"><em class=
              "parameter"><code>--enable-cxx</code></em></span>
            </dt>
            <dd>
              <p>
                This parameter enables C++ support
              </p>
            </dd>
            <dt>
              <span class="term"><em class=
              "parameter"><code>--docdir=/usr/share/doc/gmp-6.1.2</code></em></span>
            </dt>
            <dd>
              <p>
                This variable specifies the correct place for the
                documentation.
              </p>
            </dd>
          </dl>
        </div>
        <p>
          Compile the package and generate the HTML documentation:
        </p>
        <pre class="userinput">
<kbd class="command">make
make html</kbd>
</pre>
        <div class="admon important">
          <img alt="[Important]" src="../images/important.png" />
          <h3>
            Important
          </h3>
          <p>
            The test suite for GMP in this section is considered critical. Do
            not skip it under any circumstances.
          </p>
        </div>
        <p>
          Test the results:
        </p>
        <pre class="userinput">
<kbd class="command">make check 2&gt;&amp;1 | tee gmp-check-log</kbd>
</pre>
        <div class="admon caution">
          <img alt="[Caution]" src="../images/caution.png" />
          <h3>
            Caution
          </h3>
          <p>
            The code in gmp is highly optimized for the processor where it is
            built. Occasionally, the code that detects the processor
            misidentifies the system capabilities and there will be errors in
            the tests or other applications using the gmp libraries with the
            message "Illegal instruction". In this case, gmp should be
            reconfigured with the option --build=x86_64-unknown-linux-gnu and
            rebuilt.
          </p>
        </div>
        <p>
          Ensure that all 190 tests in the test suite passed. Check the
          results by issuing the following command:
        </p>
        <pre class="userinput">
<kbd class=
"command">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</kbd>
</pre>
        <p>
          Install the package and its documentation:
        </p>
        <pre class="userinput">
<kbd class="command">make install
make install-html</kbd>
</pre>
      </div>
      <div class="content" lang="en" xml:lang="en">
        <h2 class="sect2">
          <a id="contents-gmp" name="contents-gmp"></a>6.14.2. Contents of
          GMP
        </h2>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">Installed Libraries:</strong>
              <span class="segbody">libgmp.so and libgmpxx.so</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Installed directory:</strong>
              <span class="segbody">/usr/share/doc/gmp-6.1.2</span>
            </div>
          </div>
        </div>
        <div class="variablelist">
          <h3>
            Short Descriptions
          </h3>
          <table border="0" class="variablelist">
            <colgroup>
              <col align="left" valign="top" />
              <col />
            </colgroup>
            <tbody>
              <tr>
                <td>
                  <p>
                    <a id="libgmp" name="libgmp"></a><span class=
                    "term"><code class="filename">libgmp</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains precision math functions
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libgmpxx" name="libgmpxx"></a><span class=
                    "term"><code class="filename">libgmpxx</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains C++ precision math functions
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="binutils.html" title=
          "Binutils-2.27">Prev</a>
          <p>
            Binutils-2.27
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="mpfr.html" title="MPFR-3.1.5">Next</a>
          <p>
            MPFR-3.1.5
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter06.html" title=
          "Chapter&nbsp;6.&nbsp;Installing Basic System Software">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 8.0-systemd">Home</a>
        </li>
      </ul>
    </div>
  </body>
</html>
